home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 1998 August / PC Plus SuperCD 50a Issue 142 (CD142a) (August 1998).iso / trial / demon / TURNPIKE.1 / CLASSES.ZIP / JAVA / AWT / CardLayout.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-04-14  |  3.4 KB  |  231 lines

  1. package java.awt;
  2.  
  3. import java.util.Enumeration;
  4. import java.util.Hashtable;
  5.  
  6. public class CardLayout implements LayoutManager {
  7.    Hashtable tab;
  8.    int hgap;
  9.    int vgap;
  10.  
  11.    public CardLayout() {
  12.       this(0, 0);
  13.    }
  14.  
  15.    public CardLayout(int var1, int var2) {
  16.       this.tab = new Hashtable();
  17.       this.hgap = var1;
  18.       this.vgap = var2;
  19.    }
  20.  
  21.    public void addLayoutComponent(String var1, Component var2) {
  22.       if (this.tab.size() > 0) {
  23.          var2.hide();
  24.       }
  25.  
  26.       this.tab.put(var1, var2);
  27.    }
  28.  
  29.    public void removeLayoutComponent(Component var1) {
  30.       Enumeration var2 = this.tab.keys();
  31.  
  32.       while(var2.hasMoreElements()) {
  33.          String var3 = (String)var2.nextElement();
  34.          if (this.tab.get(var3) == var1) {
  35.             this.tab.remove(var3);
  36.             return;
  37.          }
  38.       }
  39.  
  40.    }
  41.  
  42.    public Dimension preferredLayoutSize(Container var1) {
  43.       Insets var2 = var1.insets();
  44.       int var3 = var1.countComponents();
  45.       int var4 = 0;
  46.       int var5 = 0;
  47.  
  48.       for(int var6 = 0; var6 < var3; ++var6) {
  49.          Component var7 = var1.getComponent(var6);
  50.          Dimension var8 = var7.preferredSize();
  51.          if (var8.width > var4) {
  52.             var4 = var8.width;
  53.          }
  54.  
  55.          if (var8.height > var5) {
  56.             var5 = var8.height;
  57.          }
  58.       }
  59.  
  60.       return new Dimension(var2.left + var2.right + var4 + this.hgap * 2, var2.top + var2.bottom + var5 + this.vgap * 2);
  61.    }
  62.  
  63.    public Dimension minimumLayoutSize(Container var1) {
  64.       Insets var2 = var1.insets();
  65.       int var3 = var1.countComponents();
  66.       int var4 = 0;
  67.       int var5 = 0;
  68.  
  69.       for(int var6 = 0; var6 < var3; ++var6) {
  70.          Component var7 = var1.getComponent(var6);
  71.          Dimension var8 = var7.minimumSize();
  72.          if (var8.width > var4) {
  73.             var4 = var8.width;
  74.          }
  75.  
  76.          if (var8.height > var5) {
  77.             var5 = var8.height;
  78.          }
  79.       }
  80.  
  81.       return new Dimension(var2.left + var2.right + var4 + this.hgap * 2, var2.top + var2.bottom + var5 + this.vgap * 2);
  82.    }
  83.  
  84.    public void layoutContainer(Container var1) {
  85.       synchronized(var1){}
  86.  
  87.       try {
  88.          Insets var4 = var1.insets();
  89.          int var5 = var1.countComponents();
  90.  
  91.          for(int var6 = 0; var6 < var5; ++var6) {
  92.             Component var7 = var1.getComponent(var6);
  93.             if (var7.visible) {
  94.                var7.reshape(this.hgap + var4.left, this.vgap + var4.top, var1.width - (this.hgap * 2 + var4.left + var4.right), var1.height - (this.vgap * 2 + var4.top + var4.bottom));
  95.             }
  96.          }
  97.       } catch (Throwable var9) {
  98.          throw var9;
  99.       }
  100.  
  101.    }
  102.  
  103.    void checkLayout(Container var1) {
  104.       if (var1.getLayout() != this) {
  105.          throw new IllegalArgumentException("wrong parent for CardLayout");
  106.       }
  107.    }
  108.  
  109.    public void first(Container var1) {
  110.       synchronized(var1){}
  111.  
  112.       try {
  113.          this.checkLayout(var1);
  114.          int var4 = var1.countComponents();
  115.  
  116.          for(int var5 = 0; var5 < var4; ++var5) {
  117.             Component var6 = var1.getComponent(var5);
  118.             if (var6.visible) {
  119.                var6.hide();
  120.                var6 = var1.getComponent(0);
  121.                var6.show();
  122.                var1.validate();
  123.                return;
  124.             }
  125.          }
  126.  
  127.       } catch (Throwable var8) {
  128.          throw var8;
  129.       }
  130.    }
  131.  
  132.    public void next(Container var1) {
  133.       synchronized(var1){}
  134.  
  135.       try {
  136.          this.checkLayout(var1);
  137.          int var4 = var1.countComponents();
  138.  
  139.          for(int var5 = 0; var5 < var4; ++var5) {
  140.             Component var6 = var1.getComponent(var5);
  141.             if (var6.visible) {
  142.                var6.hide();
  143.                var6 = var1.getComponent(var5 + 1 < var4 ? var5 + 1 : 0);
  144.                var6.show();
  145.                var1.validate();
  146.                return;
  147.             }
  148.          }
  149.  
  150.       } catch (Throwable var8) {
  151.          throw var8;
  152.       }
  153.    }
  154.  
  155.    public void previous(Container var1) {
  156.       synchronized(var1){}
  157.  
  158.       try {
  159.          this.checkLayout(var1);
  160.          int var4 = var1.countComponents();
  161.  
  162.          for(int var5 = 0; var5 < var4; ++var5) {
  163.             Component var6 = var1.getComponent(var5);
  164.             if (var6.visible) {
  165.                var6.hide();
  166.                var6 = var1.getComponent(var5 > 0 ? var5 - 1 : var4 - 1);
  167.                var6.show();
  168.                var1.validate();
  169.                return;
  170.             }
  171.          }
  172.  
  173.       } catch (Throwable var8) {
  174.          throw var8;
  175.       }
  176.    }
  177.  
  178.    public void last(Container var1) {
  179.       synchronized(var1){}
  180.  
  181.       try {
  182.          this.checkLayout(var1);
  183.          int var4 = var1.countComponents();
  184.  
  185.          for(int var5 = 0; var5 < var4; ++var5) {
  186.             Component var6 = var1.getComponent(var5);
  187.             if (var6.visible) {
  188.                var6.hide();
  189.                var6 = var1.getComponent(var4 - 1);
  190.                var6.show();
  191.                var1.validate();
  192.                return;
  193.             }
  194.          }
  195.  
  196.       } catch (Throwable var8) {
  197.          throw var8;
  198.       }
  199.    }
  200.  
  201.    public void show(Container var1, String var2) {
  202.       synchronized(var1){}
  203.  
  204.       try {
  205.          this.checkLayout(var1);
  206.          Component var5 = (Component)this.tab.get(var2);
  207.          if (var5 != null && !var5.visible) {
  208.             int var6 = var1.countComponents();
  209.  
  210.             for(int var7 = 0; var7 < var6; ++var7) {
  211.                Component var8 = var1.getComponent(var7);
  212.                if (var8.visible) {
  213.                   var8.hide();
  214.                   break;
  215.                }
  216.             }
  217.  
  218.             var5.show();
  219.             var1.validate();
  220.          }
  221.       } catch (Throwable var10) {
  222.          throw var10;
  223.       }
  224.  
  225.    }
  226.  
  227.    public String toString() {
  228.       return this.getClass().getName() + "[hgap=" + this.hgap + ",vgap=" + this.vgap + "]";
  229.    }
  230. }
  231.